package com.project.mapper;

import com.project.bean.RoleBean;
import com.project.bean.RootBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 角色mapper类
 */
public interface IRoleMapper {

    /**
     * 查询所有角色，不用查询对应的权限
     * @return
     */
    public List<RoleBean> findAll();

    /**
     * 检查 角色名是否存在
     * @param name 角色名
     * @return
     */
    public int checkRole(@Param("name") String name);

    /**
     * 添加角色  先检查角色名称是否存在 后 再添加角色
     * @param role
     */
    public void addRole(RoleBean role);

    /**
     * 添加角色对应的权限集合
     * @param roleId  角色id
     * @param rootIDArray 权限集合
     */
    public void addRoleRoot(@Param("roleId") int roleId, @Param("rootIDArray") int[] rootIDArray);

    /**
     * 根据角色id删除角色，要先删除所有角色id的中间表数据，包括用户角色中间表，和权限角色中间表
     * @param id
     */
    public void delRole(int id);

    /**
     * 根据角色id查询角色，同时查询该角色权限集合
     * @param id
     * @return
     */
    public RoleBean findById(int id);

    /**
     * 根据角色id查询角色权限集合
     * @param idArray 角色id
     * @return 权限集合
     */
    public List<RootBean> findRoots(@Param("idArray") int[] idArray);

    /**
     * 根据角色id 修改 权限列表  根据角色id删除  角色权限中间表 数据，在把权限集合和角色id添加中间表数据
     * @param id 角色id
     * @param idArray 权限列表
     */
    public void update(@Param("id") int id, @Param("idArray") int[] idArray);
}
